package com.smartleanx.module.hrm.service.employee;

import javax.validation.*;

import com.smartleanx.module.hrm.controller.admin.employee.train.EmployeeTrainingExperienceSaveReqVO;
import com.smartleanx.module.hrm.dal.dataobject.employee.EmployeeTrainingExperienceDO;
import com.smartleanx.framework.common.pojo.PageResult;

import java.util.List;

/**
 * 员工培训经历 Service 接口
 *
 * @author tengcj
 */
public interface EmployeeTrainingExperienceService {

    /**
     * 创建员工培训经历
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createEmployeeTrainingExperience(@Valid EmployeeTrainingExperienceSaveReqVO createReqVO);

    /**
     * 更新员工培训经历
     *
     * @param updateReqVO 更新信息
     */
    void updateEmployeeTrainingExperience(@Valid EmployeeTrainingExperienceSaveReqVO updateReqVO);

    /**
     * 删除员工培训经历
     *
     * @param id 编号
     */
    void deleteEmployeeTrainingExperience(Long id);

    /**
     * 获得员工培训经历
     *
     * @param id 编号
     * @return 员工培训经历
     */
    EmployeeTrainingExperienceDO getEmployeeTrainingExperience(Long id);

    /**
     * 获得培训经历列表
     *
     * @param employeeId
     * @return
     */
    List<EmployeeTrainingExperienceDO> getEmployeeTrainingExperienceList(Long employeeId);

    void deleteByEmployeeId(Long employeeId);
}